using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using GoodStuff;
using System.Runtime.InteropServices;

namespace Test
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
 //           GoodVariable<Decimal> d1 = new GoodVariable<decimal>();
 //           d1.Name = "Blort";
 //           d1.DisplayName = "Flump";
 //           GoodVariable<Decimal> d2 = new GoodVariable<decimal>();
 //           d2.Name = "Flap";
 //           d2.DisplayName = "Doodle";


 //           Form1 f = new Form1();

 //           FlowLayoutPanel flp = new FlowLayoutPanel();
 //           flp.Size = f.ClientSize;
 //           flp.FlowDirection = FlowDirection.TopDown;
 //           flp.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom;
 //           f.Controls.Add(flp);

 //           for (int i = 0; i < 5; ++i)
 //           {
 //               GoodVariable d = new GoodNumericVariable<int>();
 //               d.Name = "Blort" + i.ToString();
 //               d.DisplayName = "Flump " + i.ToString();
 //               GoodNumericUpDown gnud = new GoodNumericUpDown();
 //               gnud.CharactersWide = 3;
 //               gnud.GoodVariableBinding = d;
 //               gnud.Initialize();
 //               flp.Controls.Add(gnud);
 //           }
 //           GoodVariable<Rectangle> r = new GoodVariable<Rectangle>();
 //           r.Name = "CaptureRegion";
 //           r.DisplayName = "CaptureRegion";
 //           r.Value = new Rectangle(10, 10, 10, 10);
 //           StateStore s = StateStore.GetStore();
 //           s.AddVariable(r.Name, r);
 //           GoodRectangleControl grc = new GoodRectangleControl();
 //           grc.BindTo("CaptureRegion");
 //           grc.Initialize();
 //           flp.Controls.Add(grc.Control);

 //           GoodVariable<string> gvs = new GoodVariable<string>();
 //           gvs.Name = "Ooblick";
 //           gvs.DisplayName = "Ooblick";
 //           GoodTextBox gtb = new GoodTextBox();
 //           gtb.GoodVariableBinding = gvs;
 //           gtb.CharactersWide = 40;
 //           gtb.Initialize();
 //           flp.Controls.Add(gtb);
 //           gvs.Value = "flump";

 //           blotrhandler bh = new blotrhandler();
 //           bh.StringToSet = gvs;
 //           GoodVariable<EventHandler> geh = new GoodVariable<EventHandler>();
 //           geh.Name = "BlortButton";
 //           geh.DisplayName = "Blort!";
 //           geh.Value = new EventHandler(bh.h);
 //           GoodButton gb = new GoodButton();
 //           gb.GoodVariableBinding = geh;
 //           gb.Initialize();
 //           flp.Controls.Add(gb);

 //           CheckBox cb = new CheckBox();
 //           cb.Text = "Florp Mode";
 //           flp.Controls.Add(cb);

 //           string[] stuff = { "Blort", "Flap", "Doodle", "Flump", "Florp" };
 //           GoodSelection gs = new GoodSelection();
 //           gs.Name = "BlortMode";
 //           gs.DisplayName = "Mode";
 //           gs.Choices = stuff;
 //           gs.Value = stuff[0];
 //           GoodComboBox gcb = new GoodComboBox();
 //           gcb.GoodVariableBinding = gs;
 //           gcb.Initialize();
 //           flp.Controls.Add(gcb);
 //           bh.blort = gs;


 //           Form2 f2 = new Form2();
 ////           f2.Show(f);
            
 //           Application.Run(f);
        }
    }

}